package com.turnengine.client.local.turn.bean;

import com.javabi.codebuilder.generated.IGeneratedBean;
import com.turnengine.client.local.turn.enums.TurnUpdating;
import com.turnengine.client.local.turn.enums.TurnsEnabled;

/**
 * The I Turn Summary.
 */
public interface ITurnSummary extends IGeneratedBean, Comparable<ITurnSummary> {

	/**
	 * Returns the number.
	 * @return the number.
	 */
	int getNumber();

	/**
	 * Returns the enabled.
	 * @return the enabled.
	 */
	TurnsEnabled getEnabled();

	/**
	 * Returns the updating.
	 * @return the updating.
	 */
	TurnUpdating getUpdating();

	/**
	 * Returns the time to next turn.
	 * @return the time to next turn.
	 */
	long getTimeToNextTurn();

	/**
	 * Returns the time of next turn.
	 * @return the time of next turn.
	 */
	long getTimeOfNextTurn();

	/**
	 * Returns the current time.
	 * @return the current time.
	 */
	long getCurrentTime();

	/**
	 * Sets the number.
	 * @param number the number to set.
	 */
	void setNumber(int number);

	/**
	 * Sets the enabled.
	 * @param enabled the enabled to set.
	 */
	void setEnabled(TurnsEnabled enabled);

	/**
	 * Sets the updating.
	 * @param updating the updating to set.
	 */
	void setUpdating(TurnUpdating updating);

	/**
	 * Sets the time to next turn.
	 * @param timeToNextTurn the time to next turn to set.
	 */
	void setTimeToNextTurn(long timeToNextTurn);

	/**
	 * Sets the time of next turn.
	 * @param timeOfNextTurn the time of next turn to set.
	 */
	void setTimeOfNextTurn(long timeOfNextTurn);

	/**
	 * Sets the current time.
	 * @param currentTime the current time to set.
	 */
	void setCurrentTime(long currentTime);
}
